'use strict';
const Sequelize = require('sequelize')
const config = require('../config')
//引入log4js 工具
const logUtil = require('../utlis/log_utli')
let options = {
    dialect:'mysql',
    pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
    },
    logging(mysql){
        logUtil.logInfo(mysql)
    },
    define:{
        //是否冻结表名,最好设置为true，要不sequelize会自动给表名加上复数s造成查询数据失败。
        //mongoose也有这样的问题...
        freezeTableName:true,
        // 是否为表添加 createdAt 和 updatedAt 字段
        // createdAt 记录表的创建时间
        // updatedAt 记录字段更新时间
        timestamps:false,
        // 是否为表添加 deletedAt 字段
        // 在日常开发中删除数据记录是一大禁忌，因此我们删除数据并不会真正删除，而是为他添加
        // deletedAt字段
        paranoid:false,
        //是否开启op
        operatorsAliases: false,
        hooks:{
            beforeCreate(){},
            afterUpdate(){}
        }
    },
    // 时区
    timezone: '+08:00'
}
let db = {
    sequelize:new Sequelize(config.mysql.uri,options)
}
db.sequelize.sync({force: true})//同步更新数据库 （但是会删除原有数据）
//
db.User = db.sequelize.import('../models/uses')
db.UserInfo = db.sequelize.import('../models/user_info')
module.exports = db